package com.linzt.candy.wxmp.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.linzt.candy.wxmp.domain.WxMpUser;
import me.chanjar.weixin.common.error.WxErrorException;

import java.util.List;

/**
 * @Author linzt
 * @Date 2020/12/207:26 下午
 * @Description 微信公众号用户服务类
 * @Version 1.0
 */
public interface IWxMpUserService {

    /**
     * 添加
     * @param wxMpUser 微信用户实体
     * @return
     */
    boolean insert(WxMpUser wxMpUser);

    /**
     * 更新
     * @param wxMpUser 微信用户更新
     */
    boolean update(WxMpUser wxMpUser);

    /**
     * 根据ID查找
     * @param wxMpUser 微信用户信息
     * @return
     */
    WxMpUser findById(WxMpUser wxMpUser);

    /**
     * 根据条件查询用户列表 微信用户信息
     * @param wxMpUser
     * @return
     */
    List<WxMpUser> findList(WxMpUser wxMpUser);

    /**
     * 多选删除
     *
     * @param ids /
     */
    void deleteAll(String[] ids);

    /**
     * <pre>
     * 同步用户列表
     * 公众号可通过本接口来获取帐号的关注者列表，
     * 关注者列表由一串OpenID（加密后的微信号，每个用户对每个公众号的OpenID是唯一的）组成。
     * 一次拉取调用最多拉取10000个关注者的OpenID，可以通过多次拉取的方式来满足需求。
     * 详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140840&token=&lang=zh_CN
     * http请求方式: GET（请使用https协议）
     * 接口地址：https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID
     * </pre>
     */
    void sync() throws WxErrorException;

    /**
     * 查询通过分页
     *
     * @param wxMpUser  实体
     * @param pageIndex 当前用户
     * @param pageSize  页面大小
     * @return
     */
    IPage<WxMpUser> selectByPage(WxMpUser wxMpUser, int pageIndex, int pageSize);
}
